package com.example.demo.mapper;

import com.example.demo.entity.Userinfo;
import com.example.demo.entity.VO.UserinfoSecret;
import com.example.demo.entity.VO.UserinfoV0;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.parameters.P;

/**
 * Created with IntelliJ IEDA.
 * Description:
 * User:86186
 * Date:2023-08-28
 * Time:19:57
 */
@Mapper
public interface UserMapper {

    /**
     * 注册功能

     */
    int addUser(Userinfo userinfo);

    /**
     * 登录功能
     * 根据用户名查询 userinfo 对象
     */
    Userinfo getUserByName(@Param("username")String username);

    /**
     * 通过用户 id 查询用户信息
     */
    Userinfo getUserById(@Param("id") Integer id);

    /**
     * 通过用户名得到用户 state
     */
    Integer getStateByName(@Param("username")String username);

    /**
     * 修改用户state信息
     */
    Integer updateUserStatefoById(@Param("state")Integer state,@Param("id") Integer id);

    /**
     * 修改用户信息
     */
    Integer updateUserinfo(UserinfoV0 userinfoV0);

    /**
     * 得到用户 gitee
     */
    String getGitee(@Param("id") Integer id);

    String getUsername(@Param("id")Integer id);

    /**
     *
     */
    UserinfoV0 showUserInfo(@Param("id") Integer id);

    /**
     * 修改用户头像
     */
    Integer upLodePhoto(@Param("photo") String photo, @Param("id") Integer id);

    /**
     * 增加密保
     */
    Integer addQuestion(@Param("id")Integer id,@Param("question")String question,@Param("answer")String answer);

    /**
     * 得到密保问题
     */
    UserinfoSecret getQuestion(@Param("id")Integer id);

    /**
     * 确认密保答案
     */
    String checkAnswer(@Param("id") Integer id);

    /**
     * 修改用户密码
     */
    Integer updateUserSecret(@Param("password")String password,@Param("id")Integer id);

    /**
     * 通过博客id查找用户id
     * @param id
     * @return
     */
    Integer getUserUidByid(Integer id);
}
